Using Software Metrics to Evaluate Static Single Assignment Form in GCC
نویسندگان
چکیده
Over the past 20 years, static single assignment form (SSA) has risen to become the compiler intermediate representation of choice. Compiler developers cite many qualitative reasons for choosing SSA. However in this study, we present clear quantitative benefits of SSA, by applying several standard software metrics to compiler intermediate code in both SSA and non-SSA forms. The average complexity reduction achieved by using SSA in the GCC compiler is between 32% and 60% according to our software metrics, over a set of standard SPEC benchmarks.
منابع مشابه
Efficiently Building the Gated Single Assignment Form in Codes with Pointers in Modern Optimizing Compilers
Understanding program behavior is at the foundation of program optimization. Techniques for automatic recognition of program constructs characterize the behavior of code fragments, providing compilers with valuable information to guide code optimizations. The XARK compiler framework provides a complete, robust and extensible solution to the automatic recognition problem that was shown to be eff...
متن کاملTree SSA – A New High-Level Optimization Framework for the GNU Compiler Collection∗
In this paper we introduce Tree SSA, a new optimization framework for the GNU Compiler Collection (GCC) based on the Static Single Assignment form. The paper provides a brief historical perspective on GCC’s development, the rationale behind the new framework and its potential applications. We will also discuss some of the analyses and optimizations that are being designed and implemented on top...
متن کاملTree SSA A New Optimization Infrastructure for GCC
Tree SSA is a new optimization framework based on the Static Single Assignment (SSA) form that operates on GCC’s tree representation. Tree SSA is designed to be both language and target independent and allow highlevel analyses and transformations that are difficult or impossible to implement with RTL. One of the main goals of the project is to produce an analysis and optimization infrastructure...
متن کاملCompiling for a multithreaded dataflow architecture : algorithms, tools, and experience. (Compilation pour une architecture multi-thread à flot de données : algorithmes, outils et retour d'expérience)
Across the wide range of multiprocessor architectures, all seem to share one common problem: they are hard to program. It is a general belief that parallelism is a software problem, and that perhaps we need more sophisticated compilation techniques to partition the application into concurrent threads. Many experts also make the point that the underlining architecture plays an equally important ...
متن کاملAutomatic translation of C/C++ parallel code into synchronous formalism using an SSA intermediate form
We present an approach for the translation of imperative code (like C, C++) into the synchronous formalism Signal, in order to use a model-checker to verify properties on the source code. The translation uses Ssa as an intermediate formalism, and the GCC compiler as a front-end. The contributions of this paper with respect to previous work are a more efficient translation scheme, and the manage...
متن کامل